Method and system for installing applications via a display page

ABSTRACT

A method and system for downloading via a browser a target application using a target control is provided. An installation system provides a web page that is downloaded from a web server to a computer system on which the target application is to be installed. The web page includes a setup frame, a test frame, and an execution frame. The test frame determines whether the target application is installed at the computer system and, if not, effects the invocation of a download/installation component to download and install the target application and an associated target control. The test frame is periodically reloaded and checks to see if the target control is installed. If the target control is installed, then the test frame notifies the execution frame. The execution frame then invokes the target control to effect the launching of the target application.

TECHNICAL FIELD

The described technology relates generally to downloading, installing,upgrading and launching computer programs on a computer system.

BACKGROUND

Many web-based services include client-side components that need to bedownloaded and installed on the computer systems that are to access theweb-based services. Although browsers, such as Microsoft's InternetExplorer, can execute web pages that provide sophisticated userinterfaces to web-based services, some web-based services, such asconferencing services, choose to provide their user interface throughclient-side components. Unless a client-side component is preinstalledon a computer system, it needs to be downloaded when a user seeks to usea web-based service. To increase the chances of a more positive userexperience, it would be desirable if client-side components could bedownloaded, installed, and launched with minimal user interaction.

Browsers support the execution of controls to extend the browsercapability beyond displaying web pages. Internet Explorer uses ActiveXcontrols, and Mozilla browsers use plug-ins to achieve the same effectas controls. A browser can run preinstalled controls or can download andthen run controls. Because programmers can develop malicious controls, abrowser typically warns a user before a control is downloaded and seeksthe user's permission to download the control. If the user is concernedabout security, then the user can refuse permission to download thecontrol. The process of warning the user when a control is about to bedownloaded, however, means that the user needs to be involved when acontrol is downloaded.

Typically, when a client-side component is to be downloaded, a web pageprompts a user to select a link. When the link is selected, then the webpage invokes a download/installation component to download and installthe client-side component. The download/installation component promptsthe user to make various decisions to complete the download andinstallation. After the installation is complete, the user can thenleave the browser and run the executable for the client-side component.

Although a user may find it less than convenient to install the newclient-side component, the user may be willing to do so to gain accessto the web-based service. Providers of web-based services, however, maywant to update their client-side components frequently so that usershave the most current technology. Unfortunately, the process ofinstalling a new version of a client-side component can be even morecumbersome than the installation of the original version of theclient-side component.

It would be desirable to have a technique for downloading installablecomponents via a browser in a way that minimizes user interactionsneeded to download, install, and run the installable components withoutcompromising user security.

SUMMARY

A method and system for downloading via a browser a target applicationusing a target control is provided. An installation system provides aweb page that is downloaded from a web server to a computer system onwhich the target application is to be installed. The web page includes asetup frame, a test frame, and an execution frame. The test framedetermines whether the target application is installed at the computersystem and, if not, effects the invocation of a download/installationcomponent to download and install the target application and anassociated target control. The test frame is periodically reloaded andchecks to see if the target control is installed. If the target controlis installed, then the test frame notifies the execution frame. Theexecution frame then invokes the target control to effect the launchingof the target application.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a web page that is presented when a user selects to join ameeting.

FIG. 2 is a web page that illustrates the first dialog box of thecomponent that downloads and installs the target application.

FIG. 3 is a web page that illustrates the second dialog box of thedownload/installation component.

FIG. 4 is a display of the downloaded, installed, and launched targetapplication.

FIG. 5 is a web page that is presented when a user selects to join ameeting.

FIG. 6 is a web page that illustrates prompting a user to select aninstall link to download and install the target application.

FIGS. 7-10 control the downloading and installation of the targetapplication.

FIG. 11 is a web page that illustrates the prompting of the user toselect a launch link to launch the target application.

FIG. 12 is a web page of the downloaded, installed, and launched targetapplication.

FIG. 13 is a block diagram that illustrates components of theinstallation system in one embodiment.

FIG. 14 is a flow diagram that illustrates the processing of a componentof the installation system of the server computer system that selectsthe appropriate web page in one embodiment.

FIG. 15 is a flow diagram that illustrates the processing of the testframe of the controls-based web page in one embodiment.

FIG. 16 is a flow diagram that illustrates the processing of the setupframe of the controls-based web page in one embodiment.

FIG. 17 is a flow diagram that illustrates the processing of thedownload/installation component in one embodiment.

FIG. 18 is a flow diagram that illustrates the processing of theexecution frame of the control-based web page in one embodiment.

FIG. 19 is a flow diagram that illustrates the processing of the cookietest frame in one embodiment.

FIGS. 20-21 illustrates the processing of the frames of ano-control-based web page in one embodiment.

DETAILED DESCRIPTION

A method and system for downloading via a browser a target applicationusing a target control is provided. In one embodiment, an installationsystem provides a web page (i.e., a display page) that is downloadedfrom a web server to a computer system on which the target applicationis to be installed. The web page includes a setup frame, a test frame,and an execution frame. The test frame determines whether the targetapplication is installed at the computer system. If the targetapplication is not installed, a download/installation component isinvoked by the setup frame to control the download and installation ofthe target application. The download/installation component prompts theuser at various points to control the download process. A targetinstaller that is downloaded contains the target application and thetarget control. Installation of the target control indicates thatinstallation of the target application has been completed. The targetcontrol provides an interface through which the target application canbe launched. The test frame is periodically reloaded and checks to seeif the target control is installed. If the target control is installed,then the test frame notifies the execution frame. The execution framethen invokes the target control to effect the launching of the targetapplication. If the target application was already installed, then thetest frame would immediately detect that the target application isinstalled and notify the execution frame so that the target applicationcan be launched. Because the installation system automatically detectsthat a target application has been installed and launches the targetapplication via the target control, the user does not need to take anyaction once the target application is installed.

In one embodiment, the test frame can use the registration of the targetcontrol as an indication of the completion of the downloading andinstallation of the target application. Whenever the test frame isperiodically loaded, it can try to load the target control. Ifsuccessful in loading the target control, the test frame notifies theexecution frame so that it can request the target control to launch thetarget application. Alternatively, the installation of the targetapplication can also store various cookies associated with the targetapplication. The test frame can use the presence of a cookie as anindication of completion of the downloading and installation of thetarget application. In certain cases, the web page may be received froma domain that is different from the domain from which the targetapplication is downloaded. Browsers typically prevent web pages of onedomain from accessing the cookies of another domain. To allow the testframe to detect the presence of a cookie, the installation of the targetapplication stores cookies for various domains from which aninstallation web page can be downloaded. For example, if an installationweb page can be downloaded from a “Microsoft.com” or a “LiveMeeting.com”domain, then the installation of the target application registers acookie for both domains. In this way, regardless of from which domainthe installation web page is downloaded, the test frame will detectcompletion of the download and installation of the target application.

In one embodiment, the execution frame determines whether a newerversion or some other version of the target application is available tobe downloaded and installed. The web server that provided the web pagemay have encoded version information in the web page. The executionframe may invoke the target control to determine the version of theinstalled target application. If the versions indicate that a newversion should be downloaded and installed, then the execution frameinitiates the download and installation. Since the target control itselfis reinstalled as part of the upgrade process, the download andinstallation will not be successful when the web page has the oldversion of the target control loaded. Therefore, the execution framewill effect the overwriting of the web page with a blank web pageresulting in the unloading of the target control. In addition, anyaccess to the target control during the upgrade process will result infailure of the upgrade. As a result, the installation system uses thecookie polling technique to detect completion of the download andinstallation of the new version of the target application.

In one embodiment, a browser may not support controls. In such a case,the installation system provides a web page that does not rely on atarget control to launch the target application. When the web page isdisplayed to the user, it prompts the user to select a link to initiatethe download and installation of the target application. When the userselects the link, the web page runs the download/installation componentto download and install the target application. To effect the launchingof the target application after installation, the installation systemprovides an association between a target MIME-type (e.g., a fileextension) and the target application. The web page may store targetinformation (e.g., authentication information provided when the web pagewas downloaded) to be used by the target application in a file of thetarget file type. The browser then requests that the target file beloaded. Because the target file's MIME-type is associated with thetarget application, the loading of the target file by the browserresults in the target application being launched by the browser with thetarget information of the target file being accessible to the targetapplication. In this way, the target application can be launched fromthe browser without the use of a target control.

FIGS. 14 are web pages that illustrate the downloading, installing, andlaunching of a target application when the browser supports controls inone embodiment. In this example, the target application is theclient-side component of MICROSOFT's LIVE MEETING web application. FIG.1 is a web page that is presented when a user selects to join a meeting.The web page is displayed after the user selects a link, for example,from an electronic mail message notification of the meeting. The user isprompted to enter a password and then to select the submit button. Whenthe user selects the submit button, a request message is sent to theserver computer system that executes the server-side component of theweb application. FIG. 2 is a web page that illustrates the first dialogbox of the component that downloads and installs the target application.The web page is provided by the server computer system and includes asetup frame, a test frame, and an execution frame. The test framedetects that the target application was not installed and notifies thesetup frame. The setup frame upon receiving a notification launches thedownload/installation component to download and install the targetapplication. The dialog box is the first dialog box of thedownload/installation component. FIG. 3 is a web page that illustratesthe second dialog box of the download/installation component. Thisdialog box is displayed after the user selects the run button of thefirst dialog box. FIG. 4 is a display of the downloaded, installed, andlaunched target application. The web page is displayed after the userselects the close button of the fourth dialog box. As can be seen byFIGS. 14, the user makes three selections in order to download, install,and launch the target application when the browser supports controls.

FIGS. 5-12 are web pages that illustrate the downloading, installing,and launching of the target application when the browser does notsupport controls in one embodiment. FIG. 5 is a web page that ispresented when a user selects to join a meeting. The web page isdisplayed after the user selects a link, for example, from an electronicmail message notification of the meeting. The user is prompted to entera password and then select the submit button. FIG. 6 is a web page thatillustrates prompting a user to select an install link to download andinstall the target application. This web page is downloaded from theserver. When the user selects the install link, the web page launchesthe download/installation component. FIGS. 7-10 control the downloadingof an installation of the target application when the browser does notsupport controls. FIG. 11 is a web page that illustrates the promptingof the user to select a launch link to launch the target application.FIG. 12 is a display of the downloaded, installed, and launched targetapplication. The target application is launched after the user selectsthe launch link of the web page of FIG. 11. As can be seen by FIGS.5-12, the user makes five selections to download, install, and launchthe target application when the browser does not support controls.

FIG. 13 is a block diagram that illustrates components of theinstallation system in one embodiment. The installation system 1310 isimplemented on a server computer system that communicates with clientcomputer systems 1320 via communications link 1330. The installationsystem includes a web engine 1311, web pages 1312, and a targetinstaller file 1313. The server computer system may provide the servicesof a web application, such as a conferencing system. When a user at aclient computer system selects to run the target application, a requestmessage (e.g., HTTP request) is sent to the web engine. The requestincludes an indication of whether the browser of the client computersystem supports controls. The web engine selects the appropriate webpage based on whether the browser supports controls. The web enginesends that web page in a responsive message (e.g., HTTP response) to theclient computer system. The web page may include version information ofa version of the target application that is appropriate for the clientcomputer system and may include authentication information of the userto be used when launching the target application. When the browser ofthe client computer system executes the web page, the target installeris downloaded to the client computer system. The target installerincludes a target control, target application, version information,cookies, and MIME-type information.

The computing device on which the installation system is implemented mayinclude a central processing unit, memory, input devices (e.g., keyboardand pointing devices), output devices (e.g., display devices), andstorage devices (e.g., disk drives). The memory and storage devices arecomputer-readable media that may contain instructions that implement theinstallation system. In addition, the data structures and messagestructures may be stored or transmitted via a data transmission medium,such as a signal on a communication link. Various communication linksmay be used, such as the Internet, a local area network, a wide areanetwork, a point-to-point dial-up connection, a cell phone network, andso on.

Embodiments of the installation system may be implemented in variousoperating environments that include personal computers, servercomputers, hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, programmable consumer electronics, digitalcameras, network PCs, minicomputers, mainframe computers, distributedcomputing environments that include any of the above systems or devices,and so on. The computer systems may be cell phones, personal digitalassistants, smart phones, personal computers, programmable consumerelectronics, digital cameras, and so on.

The installation system may be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices. Generally, program modulesinclude routines, programs, objects, components, data structures, and soon that perform particular tasks or implement particular abstract datatypes. Typically, the functionality of the program modules may becombined or distributed as desired in various embodiments.

FIG. 14 is a flow diagram that illustrates the processing of a componentof the installation system of the server computer system that selectsthe appropriate web page in one embodiment. The component is invokedwhen the server computer system receives a request message indicatingthat the user wants to execute the target application. In decision block1401, if the request message indicates that the browser of the clientcomputer system supports controls, then the component continues at block1402, else the component continues at block 1403. In block 1402, thecomponent sends the control-based web page to the client computer systemand then completes. In block 1403, the component sends theno-control-based web page to the client computer system and thencompletes.

FIGS. 15-19 are flow diagrams that illustrate the processing of theframes of a control-based web page in one embodiment. FIG. 15 is a flowdiagram that illustrates the processing of the test frame of thecontrol-based web page in one embodiment. The test frame determineswhether the target control can be loaded. If so, it notifies theexecution frame so that the target application can be launched, else itnotifies the setup frame to start the download and installation process.In block 1501, the frame attempts to load the target control. Indecision block 1502, if the target control is successfully loaded, thenthe frame continues at block 1503, else the frame continues at block1504. In block 1503, the frame notifies the execution frame andcompletes. In block 1504, the frame notifies the setup frame andcompletes.

FIG. 16 is a flow diagram that illustrates the processing of the setupframe of the control-based web page in one embodiment. The setup frameinitiates the download and installation process of the targetapplication. In block 1601, the frame waits to receive a notificationfrom the test frame that the target application is not installed. Inblock 1602, the frame launches the download/installation component todownload and install the target application. The frame then completes.

FIG. 17 is a flow diagram that illustrates the processing of thedownload/installation component in one embodiment. The component ispassed an indication of the target application to download and install.In block 1701, the component downloads the target installer from theserver computer system. In decision block 1702, if the target installeris successfully downloaded, the component continues at block 1703, elsethe component returns. In block 1703, the component runs the targetinstaller and then completes.

FIG. 18 is a flow diagram that illustrates the processing of theexecution frame of the control-based web page in one embodiment. Theframe determines whether the installed application is an appropriateversion and, if not, downloads and installs an appropriate version. Theframe then launches the target application. In block 1801, the framewaits for notification from the test frame that the target applicationhas been installed. In block 1802, the frame invokes the target controlto retrieve the version information for the installed targetapplication. In decision block 1803, if the version information of theweb page and the version information of the installed target applicationindicate that the new version is needed, then the frame continues atblock 1805, else the frame continues at block 1804. In block 1804, theframe launches the target application by invoking the target control.The frame then completes. In block 1805, the component overwrites thetest frame with a test frame that implements a cookie-based techniquefor determining whether the target application has been installed. Inblock 1806, the frame launches the download/installation component todownload and install the target application. The frame then completes.

FIG. 19 is a flow diagram that illustrates the processing of the cookietest frame in one embodiment. In block 1901, the frame checks forcookies associated with the domain from which the web page wasdownloaded. In decision block 1902, if the cookies are found, then theframe continues at block 1903, else the frame completes until it isreloaded again. In block 1903, the component notifies the executionframe that the target application has been downloaded and installed.

FIGS. 20-21 illustrate the processing of the frames of ano-control-based web page in one embodiment. In block 2001, the frameinvokes the no-controls launch component that attempts to launch thetarget application. If the target application is not launched, then theuser will need to select a link of the web page. In block 2002, theframe waits until the user selects the install link of the web page. Inblock 2003, the frame invokes the download/installation component todownload and install the target application. Upon completion of thedownloaded installation, the user will need to select a launch link ofthe web page. In block 2004, the frame waits for the user to select thelaunch link of the web page. In block 2005, the frame invokes theno-controls launch component and then completes.

FIG. 21 is a flow diagram that illustrates the processing of theno-controls launch component in one embodiment. The component creates atarget file with a certain MIME-type file extension that has beenassociated with the target application. The component then loads thefile, which causes the target application to be launched because of theMIME-type association. In decision block 2101, if the target cookies orthe registered MIME-type is found, then the component continues at block2102, else the component completes. In block 2102, the component createsthe target file which may contain authentication information for use bythe target application. In block 2103, the component loads the targetfile to effect the launching of the target application. The componentthen completes.

From the foregoing, it will be appreciated that specific embodiments ofthe installation system have been described herein for purposes ofillustration, but that various modifications may be made withoutdeviating from the spirit and scope of the invention. Accordingly, theinvention is not limited except as by the appended claims.

1. A method in a computer system for downloading a target application,the method comprising: receiving a display page having a first frame, asecond frame, and a third frame; under control of the first frame thatis being periodically loaded by the display page, determining whetherthe target application is installed at the computer system; upondetermining that the target application is installed, notifying thesecond frame that the target application is installed; and upondetermining that the target application is not installed, notifying thethird frame that the target application is to be downloaded andinstalled; under control of the second frame, polling for an indicationthat the target application has been installed; and upon receiving theindication the target application has been installed, effectingexecution of the target application: and under control of a third frame,upon receiving notification from the first frame that the targetapplication is to be downloaded and installed, starting execution of adownload and install application to download the target application tothe computer system and to install the target application at thecomputer system wherein after the first frame is next loaded, the firstframe notifies the second frame that the target application is installedso that the second frame can effect execution of the target application;wherein initiating the downloading and installing of another version ofthe target application upon determining that the target application isinstalled and yet the other version of the target application isavailable; wherein the display page includes a fourth frame thatdetermines whether another version of the target application isavailable.
 2. The method of claim 1 wherein the indication that thetarget application has been installed is successful loading of a targetcontrol associated with the target application.
 3. The method of claim 1wherein the indication that the target application has been installed isstoring of a cookie associated with the target application.
 4. Themethod of claim 3 wherein cookies are stored for multiple domainsincluding a domain from which the display page was retrieved.
 5. Themethod of claim 1 wherein the display page includes a fourth frame andthe effecting execution of the target application includes signaling thefourth frame to launch the target application.
 6. The method of claim 1including using storing of a cookie as a result of downloading andinstalling the other version of the target application as an indicationthat the other version of the target application has been downloaded andinstalled.
 7. The method of claim 1 wherein the indication that thetarget application has been installed is registration of a MIME-typefile extension associated with the target application.
 8. Acomputer-readable storage medium encoded with instructions forcontrolling a computer system to download a client-side component of aweb-based service to the computer system, by a method comprising: undercontrol of a test frame of a web page provided by the web-based service,the test frame being periodically loaded by the web page, determiningwhether the client-side component can be loaded for execution on thecomputer system; upon determining that the client-side component cannotbe loaded, notifying a setup frame of the web page that the client-sidecomponent cannot be loaded; and upon determining that the client-sidecomponent can be loaded, notifying an execution frame of the web pagethat the client-side component can be loaded; under control of the setupframe of the web page, waiting for notification that the client-sidecomponent cannot be loaded; and upon receiving notification that theclient-side component cannot be loaded, launching a download and installapplication to download the client-side component from a server to thecomputer system and to install the downloaded client-side component atthe computer system wherein after the test frame is next loaded, it cannotify the execution frame that the client-side component can be loaded;and under control of the execution frame of the web page, waiting fornotification that the client-side component can be loaded; and uponreceiving notification that the client-side component can be loaded,launching the client-side component; wherein initiating the downloadingand installing of another version of the target application upondetermining that the target application is installed and yet the otherversion of the target application is available; wherein the display pageincludes a fourth frame that determines whether another version of thetarget application is available.
 9. The computer-readable medium ofclaim 8 including under control of the execution frame of the web page,upon receiving notification that the client-side component can be loadedand before launching the client-side component, determining whether aversion of the client-side component that is installed is current; upondetermining that the version of the client-side component that isinstalled is not current, overwriting the test frame of the web pagewith a test frame that implements a cookie-based technique fordetermining whether the client-side component has been installed; andlaunching the download and install application to download theclient-side component from the server to the computer system and toinstall the downloaded client-side component at the computer systemwherein a cookie is stored indicating that the client-side component hasbeen installed; and if it is determined that the version of the clientside component that is installed is current, launching the client-sidecomponent.
 10. The computer-readable medium of claim 9 including undercontrol of the overwritten test frame, checking whether a cookie hasbeen stored indicating that the client-side component has beeninstalled; and if the checking indicates that the cookie has beenstored, notifying the execution frame of the web page that the newlyinstalled version of the client-side component can be loaded.
 11. Thecomputer-readable medium of claim 9 wherein cookies are stored formultiple domains including the domain from which the web page wasretrieved so that test frame can access the cookie regardless from whichof the multiple domains the web page was retrieved.